package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.form.*;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 个人尽调接口
 *
 * @author syw
 * @since 2023-07-06
 **/
public interface ICheckPersonService {


    String getQueryCode(Long userId, String mark, String mode, Long id);

    CheckPersonBriefVO getBrief(Long userId, GetQueryInfoForm form);

    String searchPersonBusiness(Long userId, Long id);

    PersonBusinessCheckVO searchPersonBusinessCheck(Long userId, Long id);

    PageVO<CaseCriminalVO> searchCriminalPage(Long userId, SearchCriminalPageForm form, Pageable pageable);

    PageVO<CaseLitigationVO> searchLitigationPage(Long userId, SearchLitigationPageForm form, Pageable pageable);

    Long mySearchLitigationPage(Long userId);

    List<String> getCriminalQueryConditionCaseReason(Long userId, Long id);

    List<String> getCriminalQueryConditionCaseType(Long userId, Long id);

    Map<String, String> getCaseInfo(Long userId, GetCaseInfoForm form);

    PageVO<LimitHighDataVO> searchLimitHighPage(Long userId, GetQueryInfoForm form, Pageable pageable);

    PageVO<DishonestInfoDataVO> searchDishonestInfoPage(Long userId, GetQueryInfoForm form, Pageable pageable);

    CheckPersonReportVO getReport(Long userId, GetQueryInfoForm form);

    void downloadReport(HttpServletResponse response, Long userId, Long id);


    String uploadAuthorizedFile(Long accountId, MultipartFile file, SendAuthorizedCodeForm form);

    Long addAuthorizedRecord(Long accountId, AddPerAuthRecordForm form);

    Long personAuthQueryRecord(Long accountId, SendAuthorizedCodeForm form);
}
